package com.sgcc.operate.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sgcc.common.core.annotation.Excel;
import com.sgcc.common.core.web.domain.BaseEntity;

/**
 * 活动规则对象 o_acti_rule
 * 
 * @author sgcc
 * @date 2021-03-25
 */
public class OActiRule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 活动规则ID */
    @Excel(name = "活动规则ID")
    private String id;

    /** 活动ID */
    @Excel(name = "活动ID")
    private String actiid;

    /** 活动次数限制 */
    @Excel(name = "活动次数限制")
    private String actilimittype;

    /** 活动限制周期 */
    @Excel(name = "活动限制周期")
    private String actilimitcycle;

    /** 活动次数 */
    @Excel(name = "活动次数")
    private String actifreq;

    /** 中奖频次限制 */
    @Excel(name = "中奖频次限制")
    private String winlimittype;

    /** 中奖限制周期 */
    @Excel(name = "中奖限制周期")
    private String winlimitcycly;

    /** 中奖次数 */
    @Excel(name = "中奖次数")
    private String winfreq;

    /** 总中奖概率 */
    @Excel(name = "总中奖概率")
    private BigDecimal winprob;

    /** 消息通知ID */
    @Excel(name = "消息通知ID")
    private String noticeid;

    /** 预警接收人 */
    @Excel(name = "预警接收人")
    private String warnreceiver;

    /** 种子用户ID */
    @Excel(name = "种子用户ID")
    private String seeduserid;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate;

    /** 删除标志 */
    @Excel(name = "删除标志")
    private String delFlag;


    private List<OPrizeCost> oprizeCostList = Lists.newArrayList();  //奖品列表

    private String oprizeCostListJson; //

    private String seedusertype ;  //种子用户类型
    private String msgtype;		//消息类型
    private String msgtitle ;	//消息标题
    private String msgcontent ;	//消息内容
    private String groupName;  //种子用户群组名称

    private String h5flag;

    private List<OPutChannel> channels = new ArrayList<OPutChannel>();

    private String channelsStr;

    private String seedusername;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setActiid(String actiid) 
    {
        this.actiid = actiid;
    }

    public String getActiid() 
    {
        return actiid;
    }
    public void setActilimittype(String actilimittype) 
    {
        this.actilimittype = actilimittype;
    }

    public String getActilimittype() 
    {
        return actilimittype;
    }
    public void setActilimitcycle(String actilimitcycle) 
    {
        this.actilimitcycle = actilimitcycle;
    }

    public String getActilimitcycle() 
    {
        return actilimitcycle;
    }
    public void setActifreq(String actifreq) 
    {
        this.actifreq = actifreq;
    }

    public String getActifreq() 
    {
        return actifreq;
    }
    public void setWinlimittype(String winlimittype) 
    {
        this.winlimittype = winlimittype;
    }

    public String getWinlimittype() 
    {
        return winlimittype;
    }
    public void setWinlimitcycly(String winlimitcycly) 
    {
        this.winlimitcycly = winlimitcycly;
    }

    public String getWinlimitcycly() 
    {
        return winlimitcycly;
    }
    public void setWinfreq(String winfreq) 
    {
        this.winfreq = winfreq;
    }

    public String getWinfreq() 
    {
        return winfreq;
    }
    public void setWinprob(BigDecimal winprob) 
    {
        this.winprob = winprob;
    }

    public BigDecimal getWinprob() 
    {
        return winprob;
    }
    public void setNoticeid(String noticeid) 
    {
        this.noticeid = noticeid;
    }

    public String getNoticeid() 
    {
        return noticeid;
    }
    public void setWarnreceiver(String warnreceiver) 
    {
        this.warnreceiver = warnreceiver;
    }

    public String getWarnreceiver() 
    {
        return warnreceiver;
    }
    public void setSeeduserid(String seeduserid)
    {
        this.seeduserid = seeduserid;
    }

    public String getSeeduserid()
    {
        return seeduserid;
    }
    public void setCreateDate(Date createDate)
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public List<OPrizeCost> getOprizeCostList() {
        return oprizeCostList;
    }

    public void setOprizeCostList(List<OPrizeCost> oprizeCostList) {
        this.oprizeCostList = oprizeCostList;
    }

    public String getOprizeCostListJson() {
        return oprizeCostListJson;
    }

    public void setOprizeCostListJson(String oprizeCostListJson) {
        this.oprizeCostListJson = oprizeCostListJson;
    }

    public String getSeedusertype() {
        return seedusertype;
    }

    public void setSeedusertype(String seedusertype) {
        this.seedusertype = seedusertype;
    }

    public String getMsgtype() {
        return msgtype;
    }

    public void setMsgtype(String msgtype) {
        this.msgtype = msgtype;
    }

    public String getMsgtitle() {
        return msgtitle;
    }

    public void setMsgtitle(String msgtitle) {
        this.msgtitle = msgtitle;
    }

    public String getMsgcontent() {
        return msgcontent;
    }

    public void setMsgcontent(String msgcontent) {
        this.msgcontent = msgcontent;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public String getH5flag() {
        return h5flag;
    }

    public void setH5flag(String h5flag) {
        this.h5flag = h5flag;
    }

    public List<OPutChannel> getChannels() {
        return channels;
    }

    public void setChannels(List<OPutChannel> channels) {
        this.channels = channels;
    }

    public String getChannelsStr() {
        return channelsStr;
    }

    public void setChannelsStr(String channelsStr) {
        this.channelsStr = channelsStr;
    }

    public String getSeedusername() {
        return seedusername;
    }

    public void setSeedusername(String seedusername) {
        this.seedusername = seedusername;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("actiid", getActiid())
            .append("actilimittype", getActilimittype())
            .append("actilimitcycle", getActilimitcycle())
            .append("actifreq", getActifreq())
            .append("winlimittype", getWinlimittype())
            .append("winlimitcycly", getWinlimitcycly())
            .append("winfreq", getWinfreq())
            .append("winprob", getWinprob())
            .append("noticeid", getNoticeid())
            .append("warnreceiver", getWarnreceiver())
            .append("seeduserid", getSeeduserid())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
